/**
 * Created by a1 on 16/9/20.
 */


function PageSearchData() {
    this.Size = 10
    this.page = 0

    this.arrayData = new Array()
    this.isLoading = false

    this.keyword = ""
    this.category = 0

    this.nodeSearchResult
    this.nodeSearchScroll
    this.nodeSearchList
    this.nodeSearchEmpty
}

PageSearchData.prototype.initNode = function() {
    this.nodeSearchResult = $("#dm_search_result")
    this.nodeSearchEmpty = $("#dm_search_result_empty")
    this.nodeSearchScroll = $("#dm_search_result_scroll")
    this.nodeSearchList = $("#dm_search_result_list")
}

var pageSearchData

function initSearch() {
    console.log("init search")
    pageSearchData = new PageSearchData()
    pageSearchData.initNode()
    pageSearchData.nodeSearchResult.hide()
    pageSearchData.nodeSearchEmpty.hide()
}

function onShowSearch() {
    pageSearchData.initNode()

    $("#dm_search_input").val(pageSearchData.keyword)
    $("#dm_search_input").bind("keyup",  function(event) {
        if (event.keyCode == "13") {
            //回车执行查询
            pageSearchData.keyword = $(this).val()
            console.log("keyword: " + pageSearchData.keyword)
            if(pageSearchData.keyword == ""){
                $.alert("请输入关键词")
            }else {
                doSearch(pageSearchData.keyword)
            }
        }
    })

    $("#dm_page_search").on("click", "#dm_search_cancel", function(){
        console.log("nodeS = " + pageSearchData.nodeSearchResult.css("display"))
        if(pageSearchData.nodeSearchResult.css("display") != "none") {
            pageSearchData.nodeSearchResult.hide()
        }else {
            //$("#dm_search_input").text: ""
            document.getElementById("dm_search_input").value=""
            $.router.back()
        }
    })

    //搜索类别
    $("#dm_page_search").on("click", ".dm_search_grid_item", function(){
        onSearchItemClicked($(this))
    })

    if(pageSearchData.arrayData.length > 0) {
        addLoadMore(pageSearchData.nodeSearchScroll)
        bindLoadMore($("#dm_page_search"), function() {
            apiSearch(pageSearchData.keyword, pageSearchData.category, pageSearchData.page + 1)
        })
    }
}

//点击搜索页面的category
function onSearchItemClicked (node) {
    if(node.hasClass("selected")) {
        node.removeClass("selected")
    }else {
        node.addClass("selected")
    }
    var value = node.attr("value")
    var array = $(".dm_search_grid_item")
    for(var i = 0; i < array.length; ++i) {
        var otherNode = $(array[i])
        if(value != otherNode.attr("value") && otherNode.hasClass("selected")) {
            otherNode.removeClass("selected")
        }
    }
}

//开始搜索第一页
function doSearch(keyword) {
    if(isLoading) {
        return
    }
    pageSearchData.nodeSearchResult.show()
    pageSearchData.nodeSearchResult.scrollTop(0)
    pageSearchData.nodeSearchEmpty.hide()
    $.showPreloader();

    pageSearchData.page = 0
    pageSearchData.category = 0
    var array = $(".dm_search_grid_item")
    for(var i = 0; i < array.length; ++i) {
        var node = $(array[i])
        if(node.hasClass("selected")) {
            pageSearchData.category = node.attr("value")
        }
    }
    console.log("do search key: " + keyword + ", category: " + pageSearchData.category)
    apiSearch(keyword, pageSearchData.category, pageSearchData.page)
}

function apiSearch(keyword, category, page) {
    if(pageSearchData.isLoading) {
        return
    }
    pageSearchData.isLoading = true
    var url = "../test/data"
    $.getJSON(url, function(data){
        $.hidePreloader()
        pageSearchData.isLoading = false
        var length = data.length
        //console.log("data: " + length)
        if(length > 0) {
            if(page == 0) {
                pageSearchData.arrayData.length = 0
                pageSearchData.nodeSearchList.html("")
                $.refreshScroller()
                if(length >= Size) {
                    addLoadMore(pageSearchData.nodeSearchScroll)
                    bindLoadMore($("#dm_page_search"), function() {
                        apiSearch(keyword, category, page + 1)
                    })
                }
            }
            pageSearchData.page = page
        }
        if(length < Size) {
            removeLoadMore(pageSearchData.nodeSearchScroll)
        }
        pageSearchData.arrayData = pageSearchData.arrayData.concat(data)
        if(pageSearchData.arrayData.length == 0){
            pageSearchData.nodeSearchEmpty.show()
        }
        for(var i = 0; i < length; ++i) {
            var itemData = data[i]
            addListItem(pageSearchData.nodeSearchList, itemData, "4")
        }
        $.refreshScroller()
    })
}

//PageSearch = {
//    inited: false,
//    Size: 10,
//    page: 0,
//
//    arrayData: new Array(),
//    isLoading: false,
//
//    keyword: "",
//    category: 0,
//
//    nodeSearchResult: Object,
//    nodeSearchScroll: Object,
//    nodeSearchList: Object,
//    nodeSearchEmpty: Object,
//
//    initSearch: function () {
//        if(inited) {
//            return
//        }
//        inited = true
//        console.log("initSearch")
//        //取消按钮
//        nodeSearchResult = $("#dm_search_result")
//        nodeSearchResult.hide()
//        nodeSearchEmpty = $("#dm_search_result_empty")
//        nodeSearchEmpty.hide()
//
//        nodeSearchScroll = $("#dm_search_result_scroll")
//        nodeSearchList = $("#dm_search_result_list")
//
//        //回车事件
//        $('#dm_search_input').bind('keyup', function(event) {
//            if (event.keyCode == "13") {
//                //回车执行查询
//                keyword = value
//                console.log("keyword: " + keyword)
//                if(keyword == ""){
//                    $.alert("请输入关键词")
//                }else {
//                    doSearch(keyword)
//                }
//            }
//        })
//
//        $(document).on("click", "#dm_search_cancel", function(){
//            if(nodeSearchResult.css("display") != "none") {
//                nodeSearchResult.hide()
//            }else {
//                //$("#dm_search_input").text: ""
//                document.getElementById("dm_search_input").value=""
//                $.router.back()
//            }
//        })
//
//        //搜索类别
//        var array = $(".dm_search_grid_item")
//        array.click(function(){
//            onSearchItemClicked($(this))
//        })
//    },
//
////点击搜索页面的category
//    onSearchItemClicked: function (node) {
//        if(node.hasClass("selected")) {
//            node.removeClass("selected")
//        }else {
//            node.addClass("selected")
//        }
//        var value = node.attr("value")
//        var array = $(".dm_search_grid_item")
//        for(var i = 0; i < array.length; ++i) {
//            var otherNode = $(array[i])
//            if(value != otherNode.attr("value") && otherNode.hasClass("selected")) {
//                otherNode.removeClass("selected")
//            }
//        }
//    },
//
////开始搜索第一页
//    doSearch: function (keyword) {
//        if(isLoading) {
//            return
//        }
//        nodeSearchResult.show()
//        nodeSearchResult.scrollTop(0)
//        nodeSearchEmpty.hide()
//        $.showPreloader();
//
//        page = 0
//        category = 0
//        var array = $(".dm_search_grid_item")
//        for(var i = 0; i < array.length; ++i) {
//            var node = $(array[i])
//            if(node.hasClass("selected")) {
//                category = node.attr("value")
//            }
//        }
//        console.log("do search key: " + keyword + ", category: " + category)
//        apiSearch(keyword, category, page)
//    },
//
//    apiSearch: function (key, category, page) {
//        if(isLoading) {
//            return
//        }
//        isLoading = true
//        var url = "../test/data"
//        $.getJSON(url, function(data){
//            $.hidePreloader()
//            isLoading = false
//            var length = data.length
//            console.log("data: " + length)
//            if(length > 0) {
//                if(page == 0) {
//                    arrayData.length = 0
//                    nodeSearchList.html("")
//                    $.refreshScroller()
//                    if(length >= Size) {
//                        addLoadMore(nodeSearchScroll)
//                        bindLoadMore($("#dm_page_search"), function() {
//                            console.log("load more 222222")
//                            apiSearch(key, category, page + 1)
//                        })
//                    }
//                }
//                page = page
//            }
//            if(length < Size) {
//                removeLoadMore(nodeSearchScroll)
//            }
//            arrayData = arrayData.concat(data)
//            if(arrayData.length == 0){
//                nodeSearchEmpty.show()
//            }
//            for(var i = 0; i < length; ++i) {
//                var itemData = data[i]
//                addListItem(nodeSearchList, itemData, "4", function(){
//                    toDetail(itemData)
//                })
//            }
//            $.refreshScroller()
//        })
//    }
//}
